package cn.tedu.blog.server.service;

import cn.tedu.blog.server.pojo.dto.UserAddNewDTO;
import cn.tedu.blog.server.pojo.dto.UserLoginDTO;
import cn.tedu.blog.server.pojo.vo.UserListVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @Author: 雷茂林
 * @Date:2022/7/15 14:50
 * @Description: 用户管理-业务逻辑接口
 */

public interface IUserService {

    /**
     * 创建用户
     * @param userAddNewDTO
     * @return
     */
    @Transactional
    void createUser(UserAddNewDTO userAddNewDTO);



    /**
     * 删除用户
     * @param id
     * @return
     */
    @Transactional
    void deleteById(Long id);



    /**
     * 批量删除用户
     * @param list
     * @return
     */
    @Transactional
    void deleteByIds(List<Long> list);



    /**
     * 修改用户基本信息
     * @param userAddNewDTO
     * @return
     */
    @Transactional
    void updateById(UserAddNewDTO userAddNewDTO);



    /**
     * 用户修改密码
     * @param userAddNewDTO
     * @return
     */
    @Transactional
    void updateByIdPassword(UserAddNewDTO userAddNewDTO);



    /**
     * 根据条件查询结果集的数量
     * @return
     */
    int getCountAll(UserListVO userListVO);



    /**
     * 根据用户id回显用户信息
     * @param id
     * @return
     */
    UserListVO getBackFillById(Long id);



    /**
     * 分页条件查询用户信息
     * @param userListVO
     * @return
     */
    List<UserListVO> listByKeyword(UserListVO userListVO);



    /**
     * 登录查询
     * @param userLoginDTO
     * @return
     */
    String login(UserLoginDTO userLoginDTO);

}
